package cqrtplm.service;

import com.hustcad.plm.pdm.common.model.dto.search.SearchConditionDTO;
import com.hustcad.plm.pdm.enumeration.model.vo.EnumerationItemHandleVO;
import com.hustcad.plm.pdm.file.handler.response.ResponseResult;
import cqrtplm.dto.RtCfgBOMAndStatusInfoDTO;
import cqrtplm.dto.RtCfgStatusDTO;
import cqrtplm.entity.RtCfgStatusInfoDO;
import com.baomidou.mybatisplus.extension.service.IService;
import cqrtplm.entity.ZdDbWithFormoid;
import cqrtplm.vo.RtCfgInfoDTO;
import cqrtplm.vo.RtCfgStatusInfoVO;
import cqrtplm.vo.StatusInfoDescriptionVO;

import javax.validation.Valid;
import java.text.ParseException;
import java.util.List;

/**
* @author 博
* @description 针对表【RT_CFG_STATUS_INFO】的数据库操作Service
* @createDate 2025-06-30 22:04:43
*/
public interface RtCfgStatusInfoService extends IService<RtCfgStatusInfoDO> {

    ResponseResult getModuleIdByModelAndDevelopmentOrder(RtCfgStatusDTO dto) throws ParseException;

    ResponseResult getRtCfgStatusInfoByModuleIdOrStatusCode(RtCfgStatusDTO dto);

    ResponseResult saveRtCfgStatusInfo(RtCfgStatusInfoVO rtCfgStatusInfoVO);

    ResponseResult getRtCfgStatusInfoDetail(RtCfgStatusInfoVO rtCfgStatusInfoVO);


    ResponseResult getPartsByClassOid(SearchConditionDTO conditionDTO, String devCode);


    ResponseResult getProductType();

    ResponseResult getProductCodeList(List<StatusInfoDescriptionVO> dto, Integer pageNumber, Integer pageSize);

    ResponseResult getDefaultTemplate();

    ResponseResult deleteRtCfgStatusInfo(String[] infoIds);

    ResponseResult getInstantiatedObject();

    ResponseResult getRtCfgStatusInfoCode(String code);

    ResponseResult getRtCfgStatusInfoByProductCode(RtCfgStatusDTO dto);

    ResponseResult customization(RtCfgBOMAndStatusInfoDTO rtCfgBOMAndStatusInfoDTO);

    ResponseResult getReferenceSourceContent(RtCfgInfoDTO info);

    ResponseResult getAllBomCode(Integer pageNumber, Integer pageSize);

    ResponseResult addZd(List<ZdDbWithFormoid> list);

    ResponseResult getStatusInfoByEnumItemList(List<EnumerationItemHandleVO> enumItemList);

    ResponseResult getProductTypeByDevCode(String devCode);

    ResponseResult getMaterielCodeByProductCode(String productCode);
}
